package c05面向对象;

import java.lang.ref.*;

public class 引用类型之弱引用的探究 {
	public static void main(String[] args)
			throws Exception {
		//创建一个字符串对象
		String str = new String("疯狂Java讲义");
		//创建一个弱引用，让此弱引用引用到"疯狂Java讲义"字符串
		WeakReference<String> wr = new WeakReference<String>(str);  //①
		//切断str引用和"疯狂Java讲义"字符串之间的引用
		str = null;   //②
		//取出弱引用所引用的对象
		System.err.println(wr.get());  //③
		//通知垃圾回收
		System.gc();
		System.runFinalization();
		//再次取出弱引用所引用的对象
		System.err.println(wr.get());  //④对象被回收，返回null！
	}
}
